package net.esj.basic.core.engine.tools.crypt;

/**
 * 对称加密
 * @author Administrator
 *
 */
public interface Crypt {

	/**
	 * 使用默认密钥加密
	 * 
	 * @param bytes 加密内容
	 * @return
	 */
	byte[] encrypt(byte[] bytes);
	
	/**
	 * 
	 * @param bytes
	 * @param encryptPass 密钥 
	 * @return
	 */
	byte[] encrypt(byte[] bytes,byte[] encryptPass);
	
	String encrypt(String content);
	
	String encrypt(String content,byte[] encryptPass);
	
	/**
	 * 
	 * @param bytes 加密内容
	 * @param encryptPass 加密字典
	 * @param results 结果内容
	 * @return
	 */
	boolean checksum(byte[] bytes,byte[] encryptPass,byte[] results);
	
	boolean checksum(byte[] bytes,byte[] results);
	
	/**
	 * 
	 * @param content 加密内容
	 * @param encryptPass 加密字典
	 * @param reusults 结果内容
	 * @return
	 */
	boolean checksum(String content,byte[] encryptPass,String results);
	
	boolean checksum(String content,String results);
	
	/**
	 * 使用默认密钥解密
	 * @param bytes
	 * @return
	 */
	byte[] decrypt(byte[] bytes);
	
	/**
	 * 
	 * @param bytes
	 * @param decryptPass 密钥
	 * @return
	 */
	byte[] decrypt(byte[] bytes,byte[] decryptPass);
	
	String decrypt(String content);
	
	String decrypt(String content,byte[] decryptPass);
	
	/**
	 * 默认密钥
	 * @param key
	 */
	void setDefaultSecretKey(String key);

}
